package com.ytsky.mybatis.demo.dao;

import com.ytsky.mybatis.demo.entity.Customer;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 用于访问客户数据的接口
 * 这个接口将被MyBatis用于创建代理对象
 * 接口要与映射文件对应
 * 当前这个接口对应于Customer.xml文件
 */
public interface CustomerMapper {


    /**
     * 查询所有客户数据的方法
     * 1.方法名要与映射文件中的id相同
     * 2.方法的返回类型要与语句的resultType所指定类型相同
     * 3.如果返回是一个集合，如list那么该集合方法的返回类型要与语句的resultType所指定类型相同
     * @return
     */
    List<Customer> selectAll();

    /**
     * 插入新的客户数据
     * @param customer
     * @return
     */
    int insert(Customer customer);

    /**
     * 根据id删除数据
     * @param id
     * @return
     */
    int deleteById(int id);

    List<Customer> selectByCondition(Customer customer);

   List<Customer> selectByIds(List<Integer> ids);

       int  updateById(Customer customer);

    List<Customer>  selectPage(@Param("start") int start,@Param("size") int size);
}
